import { storage } from "@/utils";
import { CommonObj } from "@/vite-env";

/**
 * 修改state的值
 * 配置允许存储的白名单，黑名单后续再完善
 */
const whiteList: string[] = [];
const blackList: string[] = [];

export function updateState(state: any, res: CommonObj) {
  const { type, payload } = res;
  const name = type.split("/")[0];
  // checkObjKeyError(defaultSet[name], obj); // 是为了校验防止传参出错
  // 如果传入数组，则更新state里面对应属性的值，否则采用Object.assign来合并替换
  if (Array.isArray(payload)) {
    const [key, value] = payload;
    Object.assign(state[key], value);
  } else {
    Object.assign(state, payload);
  }
  // 配置允许存储的白名单，黑名单后续再完善
  storage.setItem(name, state); // 传入第三个参数 'session'，可以使用 sessionStorage 来存储，默认是 localStorage
}
